package com.treasure.mall.biz.service.core.life;

import com.treasure.mall.biz.base.SearchableCrudService;
import com.treasure.mall.biz.dto.BaseSearchDTO;
import com.treasure.mall.biz.dto.life.ShopBusinessDTO;
import com.treasure.mall.biz.dto.life.ShopSaveDTO;
import com.treasure.mall.biz.entity.life.ShopPO;
import com.treasure.mall.biz.entity.life.ShopReservationRecordsPO;
import com.treasure.mall.biz.vo.life.ShopBusinessVO;
import com.treasure.mall.biz.vo.life.ShopCityVO;
import org.springframework.data.domain.Page;

import java.util.List;

/**
 *
 * <p>
 * +---------------------------------------------------------
 * * @package: com.treasure.mall.biz.service.core.life
 * * @author: guomw (guomwchen@foxmail.com)
 * * @date: 2020/10/13 2:34 下午
 * * @since: V1.0.0
 * +---------------------------------------------------------
 * 注意：本内容仅限于内部传阅，禁止外泄以及用于其他的商业目的
 *
 */
public interface LifeShopService extends SearchableCrudService<ShopPO, Long> {
    /**
     * 保存门店信息
     *
     * @param dto
     */
    Long saveShop(ShopSaveDTO dto);

    /**
     * 获取经营范围
     *
     * @return
     */
    List<ShopBusinessVO> listByScope();

    /**
     * 获取业务标签
     *
     * @return
     */
    List<ShopBusinessVO> listByTags();

    /**
     * 保存经营范围
     *
     * @param dto
     */
    void saveScope(ShopBusinessDTO dto);

    /**
     * 保存业务标签
     *
     * @param dto
     */
    void saveTags(ShopBusinessDTO dto);

    /**
     * 获取预约记录
     *
     * @param page
     * @param size
     * @param searchDTO
     * @return
     */
    Page<ShopReservationRecordsPO> findAllRecord(int page, int size, BaseSearchDTO searchDTO);

    /**
     * 冻结或启用门店
     *
     * @param shopId
     */
    void disabledToggle(Long shopId);

    void insertRecord(Long userId, Long shopId);

    /**
     * 获取店铺城市
     *
     * @param type 0 掌眼专区城市  1修复专区城市
     * @return
     */
    List<ShopCityVO> findCity(int type);
}
